package main

import (
	"bytes"
	"fmt"
	"strings"
	"unicode/utf8"
)

func test2() {
	s := `
		line\\rrr\n
line2
`
	println(s)
}

func main() {
	ssTest()
}

func test3() {
	s := "hh" +
		"tt"
	println(s == "hhtt")
	println(s == "hh")
	println(s[1])
	println(s[:1])
	println(utf8.ValidString(s))
}

//字符串拼接
func ssTest() {
	a := "a1"
	b := a + "b1"
	lenv := len("20211208151135631")
	fmt.Println(lenv)

	//2
	c := strings.Join([]string{a, b}, "-")
	fmt.Println(c)

	//3
	fmt.Printf("%s.%s\n", a, b)

	//4
	var buffer bytes.Buffer
	buffer.WriteString(a)
	buffer.WriteString(b)
	fmt.Println(buffer.String())

	//在已有字符串数组的场合，使用 strings.Join() 能有比较好的性能
	//在一些性能要求较高的场合，尽量使用 buffer.WriteString() 以获得更好的性能
	//性能要求不太高的场合，直接使用运算符，代码更简短清晰，能获得比较好的可读性
	//如果需要拼接的不仅仅是字符串，还有数字之类的其他需求的话，可以考虑 fmt.Sprintf()
}

//HAH TODO
func byteTest() {
	//bytes包
}
